# 4. 颜色反转（使用统一的显示和保存函数）
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt

face = Image.open('face.png')
im = np.array(face)
def invert_colors(image_array, mode='rgb'):
    if mode.lower() == 'rgb':
        return 255 - image_array
    else:
        print("错误：不支持的颜色模式。请使用 'rgb'")
        return image_array


# 统一的显示函数（避免重复定义）
def display_images(original, processed, title1="原始图像", title2="处理后图像"):
    plt.figure(figsize=(12, 6))
    plt.subplot(121)
    plt.title(title1)
    plt.imshow(original)
    plt.axis('off')

    plt.subplot(122)
    plt.title(title2)
    plt.imshow(processed)
    plt.axis('off')

    plt.tight_layout()
    plt.show()


# 统一的保存函数（避免重复定义）
def save_image(image_array, output_path):
    img = Image.fromarray(image_array)
    img.save(output_path)
    print(f"图像已保存至: {output_path}")

image = im
inverted_rgb = invert_colors(image, mode='rgb')
display_images(image, inverted_rgb, "原始图像", "颜色反转后的图像")
save_image(inverted_rgb, "inverted_image.jpg")